package com.secondmybatis.contorller;


import com.secondmybatis.entity.Dept;
import com.secondmybatis.entity.Result;
import com.secondmybatis.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

// 可添加路径
@RequestMapping("/depts")
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;

    // 查询操作
    @GetMapping
    public Result list() {
        // 取出被Service处理好的数据
        List<Dept> depts = deptService.list();
        System.out.println("测试是否存在：" + Result.success(depts));

        // 返回json格式数据到网页上
        return Result.success(depts);
    }
    // 删除操作(请求获取参数第一种方式)
//    @DeleteMapping("/depts")
//    public Result delete(HttpServletRequest req){
//        String dept_id = req.getParameter("id");
//        int id = Integer.parseInt(dept_id);
//        System.out.println("需要删除的id："+id);
//        return Result.success();
//    }

    // 方式二：通过spring给的@RequestParam注解获取请求参数
    @DeleteMapping
    public Result delete(@RequestParam("id") Integer deptId) {
        System.out.println("id:" + deptId);
        deptService.delete(deptId);
        return Result.success();
    }

    // 增加部门
    // 增加全局异常处理->返回error信息
    @PostMapping
    public Result add(@RequestBody Dept dept) {
        System.out.println("添加部门:" + dept);
        // 调用service处理数据

        deptService.add(dept);
        return Result.success();
    }

    // 修改部门->查询回显(点击修改按钮时，先根据id返回一个现查询到的值)
    @GetMapping("/{id}")
    // @PathVariable 用于接收路径参数值
    public Result getById(@PathVariable Integer id) {
        System.out.println("查询到的id:" + id);
        // 调用service进行数据逻辑处理
        Dept dept = deptService.getById(id);
        return Result.success(dept);
    }

    @PutMapping
    public Result update(@RequestBody Dept dept) {
        deptService.update(dept);
        return Result.success();
    }

}
